package br.com.rotaestatistica.daos;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.rotaestatistica.entities.Linha_EstacaoEntity;
import br.com.rotaestatistica.utils.FabricaDeConexao;

public class Linha_EstacaoDAO extends FactoryDAO {
	

	public List<Linha_EstacaoEntity> selectAllLinha_EstacaoAsList() {
		List<Linha_EstacaoEntity> lista = new ArrayList<Linha_EstacaoEntity>();
		String SQL = "SELECT * FROM linha_estacao";
		PreparedStatement pstm = null;
		ResultSet rs = null;
		
		try {
			pstm = FabricaDeConexao.getConexao().prepareStatement(SQL);
			rs = pstm.executeQuery();
			while(rs.next()){
				Linha_EstacaoEntity le = new Linha_EstacaoEntity();
				le.setId_Estacao(rs.getLong("id_estacao"));
				le.setId_Linha(rs.getLong("id_linha"));
				lista.add(le);
			}
			return lista;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		} finally{
			try {
				pstm.close();
				rs.close();
				FabricaDeConexao.fechaConexao();
			} catch (SQLException e){
				e.printStackTrace();
				return null;
			}
		}
		
	}

	public Linha_EstacaoEntity selectLinha_EstacaoById(long idLinha, long idEstacao) {
		PreparedStatement pstm = null;
		ResultSet rs = null;
		String SQL = "SELECT id_linha, id_estacao FROM linha_estacao WHERE id_linha=? AND id_estacao=?";
		
		try {
			pstm = FabricaDeConexao.getConexao().prepareStatement(SQL);
			pstm.setLong(1, idLinha);
			pstm.setLong(2, idEstacao);
			
			rs = pstm.executeQuery();
			Linha_EstacaoEntity le = new Linha_EstacaoEntity();
			while(rs.next()){
				le.setId_Estacao(rs.getLong("id_estacao"));
				le.setId_Linha(rs.getLong("id_linha"));
			}
			return le;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		} finally{
			try {
				pstm.close();
				rs.close();
				FabricaDeConexao.fechaConexao();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}

	/*
	public boolean insertLinha_Estacao(Linha_EstacaoEntity linha_Estacao) {

	}

	public boolean deleteLinha_EstacaoById(long idLinha_Estacao) {

	}

	public boolean updateLinha_Estacao(Linha_EstacaoEntity linha_Estacao) {

	}*/

}
